package cn.xuewenbao.edu.service;

import cn.xuewenbao.edu.entity.Article;
import cn.xuewenbao.edu.entity.vo.ArticleInfoVo;
import cn.xuewenbao.edu.entity.vo.ArticlePublishVo;
import cn.xuewenbao.edu.entity.vo.DraftVo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result;

import java.util.List;

/**
 * <p>
 * 文章表 服务类
 * </p>
 *
 * @author mafayu
 * @since 2021-03-22
 */
public interface ArticleService extends IService<Article> {

    //根据文章id查询文章基本信息
    ArticleInfoVo getArticleInfo(String articleId, String userId);

    //根据id排序获取文章用于首页显示
    List<ArticleInfoVo> getIndexArticleInfoVo();

    //根据访问量排序获取文章-用于轮播图
    List<ArticleInfoVo> getHotArticle();

    //获取所有文章
    List<ArticleInfoVo> listAllArticleInfo();

    //添加文章
    String addArticle(ArticlePublishVo articlePublishVo);

//    //级联更新
//    void updateCascade(String id, String username);

    //根据作者id获取文章
    Result<List<ArticleInfoVo>> getArticleList(String memberId);

    //根据id删除某篇文章
    Result<?> deleteArticle(String articleId);

    //添加文章到草稿箱
    Result<Boolean> addDraft(ArticlePublishVo articlePublishVo);

    //获取草稿箱
    Result<List<DraftVo>> getDraftList(String userId);

    //根据id和作者id删除文章
    Result<?> deleteOwnArticle(String articleId, String userId);
}
